package com.example.warehouse.bus.service;

import com.example.warehouse.bus.pojo.param.BusSalesbackSelectParam;
import com.example.warehouse.bus.pojo.param.BusSalesbackUpdateParam;
import com.example.warehouse.common.pojo.vo.PageBean;
import com.example.warehouse.common.security.CurrentPrincipal;
import org.springframework.transaction.annotation.Transactional;


/**
 * 销售退货订单_业务层_接口
 */
@Transactional
public interface IBusSalesbackService {

    /**
     * 新增_销售退货订单
     *
     * @param id
     * @param description
     * @param currentPrincipal
     */
    void addNew(Long id, String description, CurrentPrincipal currentPrincipal);

    /**
     * 逻辑删除_销售退货订单
     *
     * @param id
     * @param currentPrincipal
     */
    void delete(Long id, CurrentPrincipal currentPrincipal);

    /**
     * 任意项更改_销售退货订单
     *
     * @param busSalesbackUpdateParam
     * @param currentPrincipal
     */
    void update(BusSalesbackUpdateParam busSalesbackUpdateParam, CurrentPrincipal currentPrincipal);

    /**
     * 审批_销售退货订单
     *
     * @param id
     * @param approval
     * @param currentPrincipal
     */
    void approvalSalesback(Long id, Integer approval, CurrentPrincipal currentPrincipal);

    /**
     * 分页模糊查询_销售退货订单
     *
     * @param busSalesbackSelectParam
     * @param page
     * @param pageSize
     * @return
     */
    PageBean page(BusSalesbackSelectParam busSalesbackSelectParam, Integer page, Integer pageSize);
}
